package com.swanclouds.model.managers;

import com.swanclouds.model.ModelEntity;
import com.swanclouds.redfish.common.redfish.Addresses;
import com.swanclouds.redfish.common.redfish.Status;
import java.util.List;
import java.util.Map;

public interface EthernetInterfaces extends ModelEntity {

    /**
     * 网口实例的ID
     * @return String
     */
    String getId();

    /**
     * 网口实例资源的名称
     * @return String
     */
    String getName();

    String getPermanentMACAddress();

    /**
     * 指定iBMC的主机名
     * @return String
     */
    String getHostName();

    /**
     * 指定iBMC的全称域名
     * @return String
     */
    String getFQDN();

    /**
     * 指定iBMC网口资源节点的访问路径
     * @return String
     */
    String getDataId();

    /**
     * 指定iBMC网口资源类型
     * @return String
     */
    String getType();

    /**
     * 指定BMC网口的MAC地址
     * @return String
     */
    String getMacaddress();

    /**
     * 指定BMC网口的状态信息
     * @return java.util.List
     */
    List<Status> getStatus();

    /**
     * 接口使能，表示接口是否可用。包括：
     * true  接口已启用
     * false  接口未启用
     * @return Boolean
     */
    Boolean getInterfaceEnabled();

    /**
     * 指定BMC管理网口的速率
     * @return Integer
     */
    Integer getSpeedMbps();

    /**
     * 自动协商模式，表示速率和复用是自动协商的。包括：
     * true
     * false
     * @return Boolean
     */

    Boolean getAutoNeg();

    /**
     * 全双工模式包含:
     * true
     * false
     * @return Boolean
     */
    Boolean getFullDuplex();

    /**
     * 最大传输单元大小，范围1280到1500
     * @return Integer
     */
    Integer getMtuSize();

    /**
     * 网口链路状态包括：
     * LinkDown  物理上连接但未启用
     * LinkUp  物理上连接并启用
     * NoLink  物理上未连接
     * @return String
     */
    String getLinkStatus();

    /**
     * 最大的IPV6静态地址的个数
     * @return Integer
     */
    Integer getMaxIPv6StaticAddresses();

    /**
     * 指定BMC网口的IPv6网关地址
     * @return String
     */
    String getIPv6DefaultGateway();

    /**
     * 指定iBMC网口的VLAN信息
     * 仅“固定设置”模式下选择“专用网口”时，不支持VLAN
     * 设置。其他模式下，支持使能和配置VLAN ID
     * 2. 若选择“专用网口”作为iBMC管理网口，当前配置的
     * VLAN信息不生效；若选择了除“专用网口”外的其他网口
     * 作为iBMC管理网口，则当前配置的VLAN信息有效
     * @return java.util.Map
     */
    Map<String,Object> getVlan();

    /**
     * 指定BMC网口的DHCPv6配置信息
     * @return java.util.Map
     */
    Map<String,Object> getDHCPv6();

    /**
     * 指定BMC网口的DHCPv4配置信息
     * @return java.util.Map
     */
    Map<String,Object> getDHCPv4();

    /**
     * 无状态地址自动配置
     * @return java.util.Map
     */
    Map<String,Object> getStatelessAddressAutoConfig();

    /**
     * 指定BMC网口的IPv4信息
     * @return java.util.Map
     */
    //List<Addresses> getIPv4Addresses();

    /**
     * 指定iBMC网口的IPv6信息
     * @return java.util.Map
     */
    List<Addresses> getIPv6Addresses();

    /**
     * 网口关联资源
     * @return java.util.Map
     */
    Map<String,Object> getLink();
}
